fix: support case-insensitive images/labels folders in YOLO datasets#421
Open
Anduin9527 wants to merge 2 commits intoroboflow:mainfrom
Open
fix: support case-insensitive images/labels folders in YOLO datasets#421Anduin9527 wants to merge 2 commits intoroboflow:mainfrom
Anduin9527 wants to merge 2 commits intoroboflow:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Fix case-sensitive matching issue in YOLO dataset folder parsing. The current implementation only supports lowercase
imagesandlabelsfolders, causing annotation matching to fail when using capitalized folder names likeImagesandLabels.Changes
_describe_file()inroboflow/util/folderparser.pyto use case-insensitive regex replacement instead of hardcoded lowercase string matchingimages,Images,IMAGES,labels,Labels,LABELS, etc.Problem
When uploading YOLO format datasets with capitalized folder names (e.g.,
Train/ImagesandTrain/Labels), the annotation files were not being matched to their corresponding images. This is because thefullkey2generation used case-sensitive string replacement:For a path like
/Train/Images/image.jpg, the replacement would not match, causingfullkey2to remain as/train/images/imageinstead of the expected/train/image.Solution
Use
re.sub()withre.IGNORECASEflag:Testing
Verified that:
Images/Labels) are now correctly matchedannotations = OKfor all imagesRelated Issues
Fixes the issue where YOLO datasets with non-lowercase folder names fail to upload annotations.